package buckets.core;

/**
 * This class represents a bucket filling problem instance.
 * 
 * @author vasek
 *
 */
public final class BucketsInstance {
	
	private final int id;
	private final int numberOfBuckets;
	private final int[] capacities;	
	private final int[] originalCapacities;
	private final int[] targetCapacities;
	
	/**
	 * Constructor.
	 * 
	 * @param id of instance
	 * @param numberOfBuckets buckets count
	 * @param capacities capacities of buckets
	 * @param originalCapacities array of buckets original capacities
	 * @param targetCapacities array of buckets target capacities
	 */
	public BucketsInstance(final int id, final int numberOfBuckets, final int[] capacities, final int[] originalCapacities,
			final int[] targetCapacities) {
		super();
		this.id = id;
		this.numberOfBuckets = numberOfBuckets;
		this.capacities = capacities;
		this.originalCapacities = originalCapacities;
		this.targetCapacities = targetCapacities;
	}

	/**
	 * @return instance id
	 */
	public int getId() {
		return id;
	}
	
	/**
	 * @return number of buckets
	 */
	public int getNumberOfBuckets() {
		return numberOfBuckets;
	}
	
	/**
	 * @return array which contains capacities of all buckets
	 */
	public int[] getCapacities() {
		return capacities;
	}
	
	/**
	 * @return array which contains original capacities of all buckets
	 */
	public int[] getOriginalCapacities() {
		return originalCapacities;
	}
	
	/**
	 * @return array which contains target capacities of all buckets
	 */
	public int[] getTargetCapacities() {
		return targetCapacities;
	}

}
